LW2000

 

Nombre:      mIRC

Versión:       5.61

Víctima:       MIRC32.EXE

Herramientas:       W32Dasm

                            Hacker’s View v6.01

                            Cerebro

Cracker:                LW2000

Tutorial:                número 7

URL:                      http://www.mirc.com

 

Renuncia: Este tutorial tiene una finalidad únicamente educativa. No asumo ninguna responsabilidad por el mal uso de éste material.

 

1.     Lanzamos mIRC. Puede que ya se haya dado cuenta: el programa no tiene ninguna limitación, incluso en su estado ‘UnRegistered’. Pero yo odio el shareware ‘UnRegistered’. Así que vamos a ‘Help’, ‘Register’ e introducimos ‘LW2000’ como UserName y ‘123456’ como Serial Number.

2.     ¡Boooom! Aparece una messageBox: “Sorry, your registration name and number don’t match! Please make sure you’re typing them in using the correct capitalization and spacing. Thanks!”. ¡Hmmmm! Vamos a echar un vistazo en W32Dasm.

3.     Ahora, copiamos ‘MIRC32.EXE’ a ‘BACKUP.EXE’ y desensamblamos ‘MIRC32.EXE’ con W32Dasm. Hacemos click en el botón ‘String Data References’ y buscamos “Sorry, your registration name and number don’t match!”. Hacemos doble click en ésta cadena y cerramos la ventana SDR.

4.     Ahora deberíamos ver esto:

 

* Possible Reference to String Resource ID=01913: "Sorry, your

registration name and number don't match!"

                                 

:0043B708 6879070000        push 00000779

:0043B70D E8D2EFFCFF        call 0040A6E4

:0043B712 50                push eax

:0043B713 8B4508            mov eax, dword ptr [ebp+08]

:0043B716 50                push eax

 

5.     ¡Hmmm! Este no es el código que nos gustaría ver. Bien, subimos hasta que veamos el siguiente trozo de código ensamblador:

 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

:0043B621(C)      >¡Vamos aquí!

 

:0043B6C2 6A00               push 00000000

 

6.     Podemos ver que hemos saltado desde 00043B621’; así que vamos allá a echar un vistazo. Ahora veremos esto:

 

* Reference To: USER32.SendDlgItemMessageA, Ord:0000h

                                  |

:0043B60B E80A250A00        Call 004DDB1A

:0043B610 6803E14E00        push 004EE103

:0043B615 681CDD4E00        push 004EDD1C

:0043B61A E899950600         call 004A4BB8     >¡Hmmm! Un ‘CALL’ muy

>interesante

:0043B61F 85C0              test eax, eax     >Comprueba si EAX es

>cero o uno

:0043B621 0F849B000000      je 0043B6C2       >Salta si el resultado

>es igual

 

7.     Bien, ¿qué quiere decir éste trozo de código? En primer lugar tenemos un ‘CALL’ que devuelve un cero o un uno. Esto depende del código que tenemos dentro. Ahora vamos a hacer una prueba que nos indique si el resultado de ése ‘CALL’ es ‘1’ o ‘0’. Y al final tenemos un ‘JE’ que nos llevará bien a la messageBox de registro CORRECTA o ERRONEA. Sencillo, ¿no? Un simple comprobación Name/Code … Bien, ¡vamos a probarlo! Ponemos la barra en ‘:0043B621 OF849B000000 JE 0043B6C2’; nos encontramos en el offset ‘3AC21’ (lo podemos ver en la barra de estado).

8.     Copiamos ‘MIRC32.EXE’ a ‘TRY.EXE’. Abrimos ‘TRY.EXE’ con HIEW. Pulsamos Intro dos veces y vamos al modo DeCode. Pulsamos F5 e introducimos ‘3AC21’. Bien, ahora pulsamos F3 para editar el fichero. Cambiamos el ‘0F84’ a ‘0F85’, lo cual cambia el ‘JE’ a ‘JNE’. Pulsamos F9 para actualizar el fichero y F10 para salir.

9.     Ahora arrancamos ‘TRY.EXE’. Introducimos cualquier Name y cualquier Serial. ¡Boooom! “Your registration has been entered successfully. Thanks for registering!”. ¡Hey, estupendo! ¡Lo hemos hecho!

10.  ¡Hmmm! Salimos del programa y arrancamos nuevamente ‘TRY.EXE’. ¡Boooom! ¡¡¡MIERDA!!! “Unlicensed copy!” Así que éste programa realiza una comprobación al arrancar. Por lo tanto, abrimos ‘MIRC32.EXE’ en W32Dasm nuevamente. Y volvemos a:

 

* Reference To: USER32.SendDlgItemMessageA, Ord:0000h

|

:0043B60B E80A250A00         Call 004DDB1A

:0043B610 6803E14E00        push 004EE103

:0043B615 681CDD4E00        push 004EDD1C

:0043B61A E899950600         call 004A4BB8     >¡Hmmm! Vamos aquí.

:0043B61F 85C0              test eax, eax 

:0043B621 0F849B000000      je 0043B6C2   

 

11.  ¿Qué tenemos aquí además del ¡CALL¡? ¡Nada! Así que vamos a echar un vistazo … Ponemos la barra en la línea del ‘CALL’ y hacemos click en el botón ‘Call’. Ahora deberíamos ver esto:

 

:004A4BB8 55                  push ebp

:004A4BB9 8BEC                mov ebp, esp

:004A4BBB 53                  push ebx

:004A4BBC 56                  push esi

:004A4BBD 57                  push edi

:004A4BBE 8B750C              mov esi, dword ptr [ebp+0C]

:004A4BC1 8B5D08              mov ebx, dword ptr [ebp+08]

:004A4BC4 53                  push ebx

:004A4BC5 E87AC20200          call 004D0E44

:004A4BCA 59                  pop ecx

:004A4BCB 83F805              cmp eax, 00000005      >Compara EAX con 5

:004A4BCE 7307                jnb 004A4B       >Salta si no es

>superior

<<-- jump if not below

:004A4BD0 33C0                xor eax, eax     >Pone EAX a cero

:004A4BD2 E9DA000000          jmp 004A4CB1     >Salta a 004A4CB1

 

12.  Por lo tanto, seguimos traceando hasta que veamos:

 

:004A4C23 6864205000          push 00502064

:004A4C28 68641F5000          push 00501F64

:004A4C2D E8A6FEFFFF          call 004A4AD8    >Bien: hemos visto

:004A4C32 85C0                test eax, eax    >algo como esto

:004A4C34 7407                je 004A4C3D            >antes

:004A4C36 B801000000          mov eax, 00000001

:004A4C3B EB74                jmp 004A4CB1

 

13.  ¡Eh! Creo que piensa lo mismo que yo. Vamos a cambiar el ‘JE’ a ‘JNE’. Ponemos la barra en ‘:004ª4C34 7707 JE 004A4C3D’ y vemos que el offset es ‘A4234’.

14.  Abrimos ‘MIRC32.EXE’ en HIEW. Seguimos el mismo procedimiento de siempre … Dos veces ‘Intro’; F5 e introducimos ‘A4234’; F3 para editar y cambiar el ‘7407’ a ‘7507’. F9 para actualizar el fichero y F10 para salir.

15.  Lanzamos ‘MIRC32.EXE’. Hacemos click en ‘Help’, ‘Register’ e introducimos ‘LW2000’ como Name y ‘123456’ como Serial. Pulsamos el botón ‘Ok’.

 

¡Enhorabuena! Ya es un usuario registrado.

 

¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme un email a LW2000@gmx.net. o vaya a http://www.LW2000.cjb.net

 

Gracias a tKC por sus tutoriales. Empecé leyendo su primer tutorial y todavía sigo leyéndolos.

 

Traducción de: MeGaBiTe